package com.smartleanx.module.hrm.controller.admin.employee.regularizerecord;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.smartleanx.module.infra.api.file.dto.FileRefRespDTO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;

@Schema(description = "管理后台 - 转正记录 Response VO")
@Data
@ExcelIgnoreUnannotated
public class EmployeeRegularizeRecordRespVO {

    @Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "9110")
    @ExcelProperty("主键id")
    private Long id;

    @Schema(description = "员工id", requiredMode = Schema.RequiredMode.REQUIRED, example = "7386")
    @ExcelProperty("员工id")
    private Long employeeId;

    @Schema(description = "员工姓名")
    @ExcelProperty("员工姓名")
    private String name;

    @Schema(description = "员工工号")
    @ExcelProperty("员工工号")
    private String employeeNo;

    @Schema(description = "部门")
    @ExcelProperty("部门")
    private String deptName;

    @Schema(description = "岗位")
    @ExcelProperty("岗位")
    private String postName;

    @Schema(description = "岗级")
    @ExcelProperty("岗级")
    private String postLevel;

    @Schema(description = "聘用形式")
    @ExcelProperty("聘用形式")
    private String employmentForm;

    @Schema(description = "计划转正日期")
    @ExcelProperty("计划转正日期")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private LocalDateTime planRegularizationTime;

    @Schema(description = "入职日期")
    @ExcelProperty("入职日期")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private LocalDateTime entryTime;

    @Schema(description = "转正日期")
    @ExcelProperty("转正日期")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private LocalDateTime regularizationTime;

    @Schema(description = "对本岗位的理解")
    @ExcelProperty("对本岗位的理解")
    private String jobUnderstand;

    @Schema(description = "试用期工作总结")
    @ExcelProperty("试用期工作总结")
    private String workSummary;

    @Schema(description = "未来工作方向和目标")
    @ExcelProperty("未来工作方向和目标")
    private String directionGoals;

    @Schema(description = "审核结果")
    @ExcelProperty("审核结果")
    private Integer approveResult;

    @Schema(description = "审核流程实例的编号", example = "22155")
    @ExcelProperty("审核流程实例的编号")
    private String approveProcessInstanceId;

    @Schema(description = "备注")
    @ExcelProperty("备注")
    private String remarks;

    @Schema(description = "试用期考核文件id列表")
    private List<FileRefRespDTO> probationFileIdList;

    @Schema(description = "其他文件id列表")
    private List<FileRefRespDTO> otherFileIdList;
    /**
     * 记录提交类型
     * <p>
     * 枚举 {@link com.smartleanx.module.hrm.eums.employee.EmployeeRecordTypeEnum}
     */
    @Schema(description = "记录提交类型")
    private Integer createType;

    @Schema(description = "提交时间")
    private LocalDateTime createTime;

}
